package com.yzqp.generator.util.generator.filter.column.add;

import com.yzqp.generator.bean.TableColumnInfo;
import com.yzqp.generator.util.HumpNameUtil;
import com.yzqp.generator.util.generator.filter.column.TableColumnFilter;

import java.util.List;

/**
 * 列过滤器的 实现
 * 新增列 javaType javaFieldName
 */
public class AddJavaTypeColumnFilter implements TableColumnFilter {

    @Override
    public List<TableColumnInfo> filter(List<TableColumnInfo> tableColumnInfoList) {
        for (TableColumnInfo column : tableColumnInfoList) {
            // 设置类型
            if ("datetime".equals(column.getDataType())) {
                column.setJavaType("Date");
            } else if ("tinyint".equals(column.getDataType())) {
                column.setJavaType("Boolean");
            } else if ("decimal".equals(column.getDataType())) {
                column.setJavaType("BigDecimal");
            } else if ("int".equals(column.getDataType())) {
                column.setJavaType("Integer");
            } else if ("bigint".equals(column.getDataType())) {
                column.setJavaType("Long");
            } else {
                column.setJavaType("String");
            }

            // 设置java 成员变量
            column.setJavaFieldName(HumpNameUtil.getJavaFieldName(column.getColumnName()));

            // 设置java字段名称 把 "生日: 时间格式" 转化为 "生日"
            String columnComment = column.getColumnComment();
            String javaFieldComment = columnComment.split("：")[0].trim();
            column.setJavaFieldComment(javaFieldComment);
        }

        return tableColumnInfoList;
    }
}
